package model

import static org.mockito.Mockito.*
import org.junit.Before
import org.junit.Test
import static org.junit.Assert.*
import org.junit.After
import java.util.List

class RutaTest {
	
	var Ruta rutaTest
	var Pais mockPais = mock(typeof(Pais))
	var Pais mockPais2 = mock(typeof(Pais))
	var Pais mockPais3 = mock(typeof(Pais))
	val List<Pais> paisesTest = newArrayList
	val Villano villanoTest= new Villano()
	
	
	@Before
	def void setUp(){
		when(this.mockPais.nombre).thenReturn("Argentina")
		when(this.mockPais2.nombre).thenReturn("Brasil")
		when(this.mockPais3.nombre).thenReturn("Uruguay")
		
		this.paisesTest => [
			add(this.mockPais)
			add(this.mockPais2)
			add(this.mockPais3)
		]
		
		this.rutaTest = new Ruta(this.paisesTest,villanoTest)
	}
	
	@After
	def void tearDown(){
		this.rutaTest = new Ruta(this.paisesTest,villanoTest)
	}
	
	@Test
	def rutaInicializadaCorrectamenteTest(){
		assertEquals("El pais debe ser Brasil", this.rutaTest.paisActual.nombre , "Argentina")
	}

	@Test
	def cambiarAlSiguientePaisTest(){
		this.rutaTest.siguientePais
		assertEquals("El pais debe ser Brasil", this.rutaTest.paisActual.nombre , "Brasil")
	}
	
	@Test
	def cambiarAlSiguientePaisMasDeUnaVezTest(){
		this.rutaTest.siguientePais
		this.rutaTest.siguientePais
		assertEquals("El pais debe ser Brasil", this.rutaTest.paisActual.nombre , "Uruguay")
	}

	

}